class Solution {
public:
    vector<int> missingTwo(vector<int>& nums) {
        int sz = nums.size();
        int tmp = 0;
        int f=0;
        vector<int> ans(2);
        for (int i = 1; i <= sz + 2; i++)
            tmp ^= i;
        for(auto x:nums)
            tmp^=x;
        f=tmp&(-tmp);
        int a=0,b=0;
        for(auto x:nums)
        {
            if((x&f)!=0) a^=x;
            else b^=x;
        }
        for(int i=1;i<=sz+2;i++)
        {
            if((i&f)!=0) a^=i;
            else b^=i;
        }
        ans[0]=a;
        ans[1]=b;
        return ans;
    }
};
